package com.ruoyi.graduate.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 摄影套餐表实体类（关联《毕设.doc》摄影套餐管理）
 * </p>
 *
 * @author [开发者名称]
 * @since 2025-11-04
 */
@Data
@ApiModel("摄影套餐表")
@TableName("ms_photography_package") // 映射数据库表名
public class MsPhotographyPackage {

    @ApiModelProperty(value = "套餐唯一标识（自增主键）")
    @TableId(type = IdType.AUTO) // 对应数据库AUTO_INCREMENT自增主键
    private Integer packageId;

    @ApiModelProperty(value = "摄影师Id")
    private Long photographyId;

    @ApiModelProperty(value = "套餐名称（如婚纱摄影套餐，唯一且必填）")
    private String packageName; // 对应数据库package_name字段（驼峰自动映射）

    @ApiModelProperty(value = "关联套餐类型ID（外键，关联ms_package_type表的type_id）")
    private Integer typeId; // 对应数据库type_id字段（外键关联）

    @ApiModelProperty(value = "套餐价格（如3999.00，精确到两位小数）")
    private BigDecimal price; // 对应数据库price字段（decimal类型用BigDecimal映射，避免精度丢失）

    @ApiModelProperty(value = "服务内容（精修/相册/服装等，逗号分隔，必填）")
    private String serviceContent; // 对应数据库service_content字段

    @ApiModelProperty(value = "交付方式（电子版/精修/相册/相框等，逗号分隔，必填）")
    private String deliveryMethod; // 对应数据库delivery_method字段（非空）


    @ApiModelProperty(value = "排序号（数字越小越靠前，默认0）")
    private Integer sortNo ; // 对应数据库sort_no字段，默认值0（与表结构默认值一致）

    @ApiModelProperty(value = "状态：0=禁用，1=启用（默认启用）")
    private Integer status ; // 对应数据库status字段，默认值1（与表结构默认值一致）

    @ApiModelProperty(value = "封面图片路径")
    private String imgUrl; // 对应数据库img_url字段

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // 前端入参时间格式化
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 后端返回时间格式化
    @TableField(fill = FieldFill.INSERT) // 插入时自动填充（与表结构CURRENT_TIMESTAMP对应）
    private LocalDateTime createTime; // 对应数据库create_time字段（datetime类型）

}